Voting algorithms are commonly implemented in fault tolerant systems that have to operate correctly in the event of possible failure in one or more of their components, such as systems that must operate without interruption even during maintenance. In these types of systems, the required outputs are generated in several system components, and are loaded to a voter unit as inputs, in which a voting is performed among the different inputs to determine the correct result. The most common voting scheme is majority voting, which generally refers to accepting a result from among different inputs based on an input that has more votes than those of all other inputs combined. In other words, majority voting accepts the result correlating to the input that has more than half of all votes. The implementation of majority voting algorithm is rather straightforward, since there can only be one input with a majority vote in any system. Therefore, majority voting can be implemented on hardware without much complexity,